Adding
Callback Functions to an Application
An
application can register callback functions with the capture window so that it
notifies the application in the following circumstances:
The status changes
Errors occur
Video frame and audio buffers
become available
The application should yield
during streaming capture
The following
example creates a capture window and registers status, error, video stream, and
frame callback functions in the message-processing loop of an application. It
also includes a sample statement for disabling a callback function. Subsequent
examples show simple status, error, and frame callback functions.
case WM_CREATE:
{
char achDeviceName[80] ;
char achDeviceVersion[100] ;
char achBuffer[100] ;
WORD wDriverCount = 0 ;
WORD wIndex ;
WORD wError ;
HMENU hMenu ;
// Create
a capture window using the capCreateCaptureWindow macro.
ghWndCap =
capCreateCaptureWindow((LPSTR)"Capture Window",
WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0);
//
Register the error callback function using the
// capSetCallbackOnError macro.
capSetCallbackOnError(ghWndCap, fpErrorCallback);
//
Register the status callback function using the
// capSetCallbackOnStatus macro.
capSetCallbackOnStatus(ghWndCap, fpStatusCallback);
//
Register the video-stream callback function using the
// capSetCallbackOnVideoStream macro.
capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback);
//
Register the frame callback function using the
// capSetCallbackOnFrame macro.
capSetCallbackOnFrame(ghWndCap, fpFrameCallback);
// Connect
to a capture driver
break;
}
case WM_CLOSE:
{
// Use the capSetCallbackOnFrame
// disable the frame callback. Similar calls exist
for the other
// callback functions.
capSetCallbackOnFrame(hWndC, NULL);
break;
}